#ifndef QUEUE_H
#define QUEUE_H

/* Kolejka na potrzeby algorytmu przeszukiwania planszy */
/* Self-explanatory. */

typedef struct Element {

	void* data;
	struct Element* next;
	
} Element;

typedef struct Queue {

	Element* head;
	Element* tail;

	int length;
	
} Queue;

void queue_init(Queue** q);

void queue_cleanup(Queue* q);

int queue_size(Queue* q);

void queue_push(Queue* q, void* data);

void* queue_pop(Queue* q);

void* queue_peek(Queue* q);

#endif